#pragma once

/* Includes ----------------------------------------------------------------- */
#include "../bsp/bsp_adc.h"
#include "cmd.h"
#include "communicate.h"

/* Exported constants ------------------------------------------------------- */

/* Exported macro ----------------------------------------------------------- */
/* Exported types ----------------------------------------------------------- */
typedef enum {
  CROSS = 0,
  FINAL = 1,
  START = 2,
  CAR2_GO_LINE = 3,
  CAR2_MID_GO_LINE = 4,
} Gray_Flag_t;
/* Exported functions prototypes -------------------------------------------- */
void Gray_Track_Straight(Cmd_t *cmd);
bool Gray_DingEvent(Cmd_t *cmd, uint8_t turn);
bool Gray_CrossEvent(Cmd_t *cmd, uint8_t turn);
bool Gray_Track(Cmd_t *cmd, Interact_Coordinate_t camera);
void Gray_Adc2Error(float adc_l, float adc_r, Cmd_t *cmd);
